home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / gtk-2.0 / gtk / gtktreeviewcolumn.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-04-25  |  11.2 KB  |  241 lines

  1. /* gtktreeviewcolumn.h
  2.  * Copyright (C) 2000  Red Hat, Inc.,  Jonathan Blandford <jrb@redhat.com>
  3.  *
  4.  * This library is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU Library General Public
  6.  * License as published by the Free Software Foundation; either
  7.  * version 2 of the License, or (at your option) any later version.
  8.  *
  9.  * This library is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.  * Library General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU Library General Public
  15.  * License along with this library; if not, write to the
  16.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  17.  * Boston, MA 02111-1307, USA.
  18.  */
  19.  
  20. #ifndef __GTK_TREE_VIEW_COLUMN_H__
  21. #define __GTK_TREE_VIEW_COLUMN_H__
  22.  
  23. #include <glib-object.h>
  24. #include <gtk/gtkcellrenderer.h>
  25. #include <gtk/gtktreemodel.h>
  26. #include <gtk/gtktreesortable.h>
  27.  
  28. /* Not needed, retained for compatibility -Yosh */
  29. #include <gtk/gtkobject.h>
  30.  
  31.  
  32. G_BEGIN_DECLS
  33.  
  34.  
  35. #define GTK_TYPE_TREE_VIEW_COLUMN         (gtk_tree_view_column_get_type ())
  36. #define GTK_TREE_VIEW_COLUMN(obj)         (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_VIEW_COLUMN, GtkTreeViewColumn))
  37. #define GTK_TREE_VIEW_COLUMN_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_VIEW_COLUMN, GtkTreeViewColumnClass))
  38. #define GTK_IS_TREE_VIEW_COLUMN(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_VIEW_COLUMN))
  39. #define GTK_IS_TREE_VIEW_COLUMN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_VIEW_COLUMN))
  40. #define GTK_TREE_VIEW_COLUMN_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TREE_VIEW_COLUMN, GtkTreeViewColumnClass))
  41.  
  42. typedef enum
  43. {
  44.   GTK_TREE_VIEW_COLUMN_GROW_ONLY,
  45.   GTK_TREE_VIEW_COLUMN_AUTOSIZE,
  46.   GTK_TREE_VIEW_COLUMN_FIXED
  47. } GtkTreeViewColumnSizing;
  48.  
  49. typedef struct _GtkTreeViewColumn      GtkTreeViewColumn;
  50. typedef struct _GtkTreeViewColumnClass GtkTreeViewColumnClass;
  51.  
  52. typedef void (* GtkTreeCellDataFunc) (GtkTreeViewColumn *tree_column,
  53.                       GtkCellRenderer   *cell,
  54.                       GtkTreeModel      *tree_model,
  55.                       GtkTreeIter       *iter,
  56.                       gpointer           data);
  57.  
  58.   
  59. struct _GtkTreeViewColumn
  60. {
  61.   GtkObject parent;
  62.  
  63.   GtkWidget *tree_view;
  64.   GtkWidget *button;
  65.   GtkWidget *child;  
  66.   GtkWidget *arrow;
  67.   GtkWidget *alignment;
  68.   GdkWindow *window;
  69.   GtkCellEditable *editable_widget;
  70.   gfloat xalign;
  71.   guint property_changed_signal;
  72.   gint spacing;
  73.  
  74.   /* Sizing fields */
  75.   /* see gtk+/doc/tree-column-sizing.txt for more information on them */
  76.   GtkTreeViewColumnSizing column_type;
  77.   gint requested_width;
  78.   gint button_request;
  79.   gint resized_width;
  80.   gint width;
  81.   gint fixed_width;
  82.   gint min_width;
  83.   gint max_width;
  84.  
  85.   /* dragging columns */
  86.   gint drag_x;
  87.   gint drag_y;
  88.  
  89.   gchar *title;
  90.   GList *cell_list;
  91.  
  92.   /* Sorting */
  93.   guint sort_clicked_signal;
  94.   guint sort_column_changed_signal;
  95.   gint sort_column_id;
  96.   GtkSortType sort_order;
  97.  
  98.   /* Flags */
  99.   guint visible             : 1;
  100.   guint resizable           : 1;
  101.   guint clickable           : 1;
  102.   guint dirty               : 1;
  103.   guint show_sort_indicator : 1;
  104.   guint maybe_reordered     : 1;
  105.   guint reorderable         : 1;
  106.   guint use_resized_width   : 1;
  107.   guint expand              : 1;
  108. };
  109.  
  110. struct _GtkTreeViewColumnClass
  111. {
  112.   GtkObjectClass parent_class;
  113.  
  114.   void (*clicked) (GtkTreeViewColumn *tree_column);
  115.  
  116.   /* Padding for future expansion */
  117.   void (*_gtk_reserved1) (void);
  118.   void (*_gtk_reserved2) (void);
  119.   void (*_gtk_reserved3) (void);
  120.   void (*_gtk_reserved4) (void);
  121. };
  122.  
  123. GType                   gtk_tree_view_column_get_type            (void) G_GNUC_CONST;
  124. GtkTreeViewColumn      *gtk_tree_view_column_new                 (void);
  125. GtkTreeViewColumn      *gtk_tree_view_column_new_with_attributes (const gchar             *title,
  126.                                   GtkCellRenderer         *cell,
  127.                                   ...) G_GNUC_NULL_TERMINATED;
  128. void                    gtk_tree_view_column_pack_start          (GtkTreeViewColumn       *tree_column,
  129.                                   GtkCellRenderer         *cell,
  130.                                   gboolean                 expand);
  131. void                    gtk_tree_view_column_pack_end            (GtkTreeViewColumn       *tree_column,
  132.                                   GtkCellRenderer         *cell,
  133.                                   gboolean                 expand);
  134. void                    gtk_tree_view_column_clear               (GtkTreeViewColumn       *tree_column);
  135. GList                  *gtk_tree_view_column_get_cell_renderers  (GtkTreeViewColumn       *tree_column);
  136. void                    gtk_tree_view_column_add_attribute       (GtkTreeViewColumn       *tree_column,
  137.                                   GtkCellRenderer         *cell_renderer,
  138.                                   const gchar             *attribute,
  139.                                   gint                     column);
  140. void                    gtk_tree_view_column_set_attributes      (GtkTreeViewColumn       *tree_column,
  141.                                   GtkCellRenderer         *cell_renderer,
  142.                                   ...) G_GNUC_NULL_TERMINATED;
  143. void                    gtk_tree_view_column_set_cell_data_func  (GtkTreeViewColumn       *tree_column,
  144.                                   GtkCellRenderer         *cell_renderer,
  145.                                   GtkTreeCellDataFunc      func,
  146.                                   gpointer                 func_data,
  147.                                   GtkDestroyNotify         destroy);
  148. void                    gtk_tree_view_column_clear_attributes    (GtkTreeViewColumn       *tree_column,
  149.                                   GtkCellRenderer         *cell_renderer);
  150. void                    gtk_tree_view_column_set_spacing         (GtkTreeViewColumn       *tree_column,
  151.                                   gint                     spacing);
  152. gint                    gtk_tree_view_column_get_spacing         (GtkTreeViewColumn       *tree_column);
  153. void                    gtk_tree_view_column_set_visible         (GtkTreeViewColumn       *tree_column,
  154.                                   gboolean                 visible);
  155. gboolean                gtk_tree_view_column_get_visible         (GtkTreeViewColumn       *tree_column);
  156. void                    gtk_tree_view_column_set_resizable       (GtkTreeViewColumn       *tree_column,
  157.                                   gboolean                 resizable);
  158. gboolean                gtk_tree_view_column_get_resizable       (GtkTreeViewColumn       *tree_column);
  159. void                    gtk_tree_view_column_set_sizing          (GtkTreeViewColumn       *tree_column,
  160.                                   GtkTreeViewColumnSizing  type);
  161. GtkTreeViewColumnSizing gtk_tree_view_column_get_sizing          (GtkTreeViewColumn       *tree_column);
  162. gint                    gtk_tree_view_column_get_width           (GtkTreeViewColumn       *tree_column);
  163. gint                    gtk_tree_view_column_get_fixed_width     (GtkTreeViewColumn       *tree_column);
  164. void                    gtk_tree_view_column_set_fixed_width     (GtkTreeViewColumn       *tree_column,
  165.                                   gint                     fixed_width);
  166. void                    gtk_tree_view_column_set_min_width       (GtkTreeViewColumn       *tree_column,
  167.                                   gint                     min_width);
  168. gint                    gtk_tree_view_column_get_min_width       (GtkTreeViewColumn       *tree_column);
  169. void                    gtk_tree_view_column_set_max_width       (GtkTreeViewColumn       *tree_column,
  170.                                   gint                     max_width);
  171. gint                    gtk_tree_view_column_get_max_width       (GtkTreeViewColumn       *tree_column);
  172. void                    gtk_tree_view_column_clicked             (GtkTreeViewColumn       *tree_column);
  173.  
  174.  
  175.  
  176. /* Options for manipulating the column headers
  177.  */
  178. void                    gtk_tree_view_column_set_title           (GtkTreeViewColumn       *tree_column,
  179.                                   const gchar             *title);
  180. G_CONST_RETURN gchar   *gtk_tree_view_column_get_title           (GtkTreeViewColumn       *tree_column);
  181. void                    gtk_tree_view_column_set_expand          (GtkTreeViewColumn       *tree_column,
  182.                                   gboolean                 expand);
  183. gboolean                gtk_tree_view_column_get_expand          (GtkTreeViewColumn       *tree_column);
  184. void                    gtk_tree_view_column_set_clickable       (GtkTreeViewColumn       *tree_column,
  185.                                   gboolean                 clickable);
  186. gboolean                gtk_tree_view_column_get_clickable       (GtkTreeViewColumn       *tree_column);
  187. void                    gtk_tree_view_column_set_widget          (GtkTreeViewColumn       *tree_column,
  188.                                   GtkWidget               *widget);
  189. GtkWidget              *gtk_tree_view_column_get_widget          (GtkTreeViewColumn       *tree_column);
  190. void                    gtk_tree_view_column_set_alignment       (GtkTreeViewColumn       *tree_column,
  191.                                   gfloat                   xalign);
  192. gfloat                  gtk_tree_view_column_get_alignment       (GtkTreeViewColumn       *tree_column);
  193. void                    gtk_tree_view_column_set_reorderable     (GtkTreeViewColumn       *tree_column,
  194.                                   gboolean                 reorderable);
  195. gboolean                gtk_tree_view_column_get_reorderable     (GtkTreeViewColumn       *tree_column);
  196.  
  197.  
  198.  
  199. /* You probably only want to use gtk_tree_view_column_set_sort_column_id.  The
  200.  * other sorting functions exist primarily to let others do their own custom sorting.
  201.  */
  202. void                    gtk_tree_view_column_set_sort_column_id  (GtkTreeViewColumn       *tree_column,
  203.                                   gint                     sort_column_id);
  204. gint                    gtk_tree_view_column_get_sort_column_id  (GtkTreeViewColumn       *tree_column);
  205. void                    gtk_tree_view_column_set_sort_indicator  (GtkTreeViewColumn       *tree_column,
  206.                                   gboolean                 setting);
  207. gboolean                gtk_tree_view_column_get_sort_indicator  (GtkTreeViewColumn       *tree_column);
  208. void                    gtk_tree_view_column_set_sort_order      (GtkTreeViewColumn       *tree_column,
  209.                                   GtkSortType              order);
  210. GtkSortType             gtk_tree_view_column_get_sort_order      (GtkTreeViewColumn       *tree_column);
  211.  
  212.  
  213. /* These functions are meant primarily for interaction between the GtkTreeView and the column.
  214.  */
  215. void                    gtk_tree_view_column_cell_set_cell_data  (GtkTreeViewColumn       *tree_column,
  216.                                   GtkTreeModel            *tree_model,
  217.                                   GtkTreeIter             *iter,
  218.                                   gboolean                 is_expander,
  219.                                   gboolean                 is_expanded);
  220. void                    gtk_tree_view_column_cell_get_size       (GtkTreeViewColumn       *tree_column,
  221.                                   GdkRectangle            *cell_area,
  222.                                   gint                    *x_offset,
  223.                                   gint                    *y_offset,
  224.                                   gint                    *width,
  225.                                   gint                    *height);
  226. gboolean                gtk_tree_view_column_cell_is_visible     (GtkTreeViewColumn       *tree_column);
  227. void                    gtk_tree_view_column_focus_cell          (GtkTreeViewColumn       *tree_column,
  228.                                   GtkCellRenderer         *cell);
  229. gboolean                gtk_tree_view_column_cell_get_position   (GtkTreeViewColumn       *tree_column,
  230.                                               GtkCellRenderer         *cell_renderer,
  231.                                               gint                    *start_pos,
  232.                                               gint                    *width);
  233. void                    gtk_tree_view_column_queue_resize        (GtkTreeViewColumn       *tree_column);
  234.  
  235.  
  236. G_END_DECLS
  237.  
  238.  
  239. #endif /* __GTK_TREE_VIEW_COLUMN_H__ */
  240.  
  241.